package cn.rkylin.oms.item.adapter;

import java.util.Map;

/**
 * 商品适配器
 * 
 * @author jipengcheng
 * @version 1.0
 * @created 2017.02.13
 */
public abstract class ItemAdapter {

	private ItemVisitor itemVisitor;

	public ItemVisitor getItemVisitor() {
		return itemVisitor;
	}

	public void setItemVisitor(ItemVisitor itemVisitor) {
		this.itemVisitor = itemVisitor;
	}

	/**
	 * 构造函数
	 */
	public ItemAdapter() {
	}

	/**
	 * 下载平台商品 (按平台编码)
	 * 
	 * @param shopId
	 * @return 1成功，0失败
	 */
	public abstract int downloadByItemCode(String shopId, Map<String, Object> paramMap);

	/**
	 * 下载平台商品 (按修改时间)
	 * 
	 * @param shopId
	 * @return 1成功，0失败
	 */
	public abstract int downloadByModifyTime(String shopId, Map<String, Object> paramMap) throws Exception;

	/**
	 * 下载平台商品 (按网店)
	 * 
	 * @param shopId
	 * @return 1成功，0失败
	 */
	public abstract int downloadAll(String shopId);

	/**
	 * 自动同步店铺库存并上下架
	 * 
	 * @param shopId
	 * @return 错误消息
	 * @throws Exception
	 *             异常
	 */
	public abstract String autoSynchStock(String shopId) throws Exception;

	/**
	 * 手动同步库存根据商品
	 * 
	 * @param ecItemId
	 * @return 错误消息
	 * @throws Exception
	 *             异常
	 */
	public abstract String manualSynchStockByItem(String ecItemId) throws Exception;

	/**
	 * 手动同步库存根据SKU
	 * 
	 * @param ecSkuId
	 * @return 错误消息
	 * @throws Exception
	 *             异常
	 */
	public abstract String manualSynchStockBySku(String ecSkuId) throws Exception;

	public void finalize() throws Throwable {

	}

}
